Saltar al contenido principal

Configuración de Comunicación MQTT

Esta guía le muestra cómo configurar la comunicación MQTT entre su cámara OV20i y dispositivos externos usando Node-RED. MQTT permite mensajería ligera y confiable para aplicaciones IoT y comunicación remota de dispositivos.

Cuándo usar la comunicación MQTT: Integración de dispositivos IoT, sistemas de monitoreo remoto, patrones de mensajería publish/subscribe, entornos de bajo ancho de banda, redes distribuidas de sensores, o cuando se requiere entrega confiable de mensajes con reconexión automática.

Prerrequisitos

  • Sistema de cámara OV20i configurado y conectado
  • Conectividad de red entre la cámara y el broker MQTT
  • Broker MQTT disponible (local o en la nube)
  • Conocimiento básico de conceptos MQTT (topics, publish/subscribe)
  • Receta activa configurada en la cámara

Descripción General de la Comunicación MQTT

Conceptos clave de MQTT:

  • Broker: Servidor central que enruta mensajes entre clientes
  • Topics: Categorías de mensajes (ej. "camera/status", "commands/trigger")
  • Publish: Enviar mensajes a un topic
  • Subscribe: Recibir mensajes de un topic
  • QoS: Niveles de Calidad de Servicio (0, 1, 2)

Paso 1: Verificar Configuración de Red

1.1 Revisar Configuración de Red de la Cámara

  1. Navegue a Configuración del Sistema
  2. Anote la dirección IP de la cámara (ej. 192.168.0.100)
  3. Verifique la conectividad de red hacia el broker MQTT

1.2 Requisitos del Broker MQTT

Asegure accesibilidad al broker MQTT:

  • Misma red: La cámara debe alcanzar la dirección IP del broker
  • Acceso a puertos: Puerto MQTT por defecto 1883 (o 8883 para TLS)
  • Autenticación: Usuario/contraseña si el broker lo requiere
  • Firewall: Permitir tráfico MQTT en los puertos necesarios

1.3 Requisitos de Red

ComponenteDirección IPPuertoNotas
Cámara192.168.0.100N/ADebe alcanzar al broker
Broker MQTT192.168.0.2001883Puerto estándar MQTT
Dispositivos Cliente192.168.0.xxxVariableDispositivos suscriptores

Paso 2: Acceder al Editor Node-RED

2.1 Navegar al Bloque IO

  1. Abra su receta activa en el Editor de Recetas
  2. Haga clic en "IO Block" en el menú breadcrumb
  3. Haga clic en "Configure IO" para entrar al editor Node-RED

2.2 Verificar Nodos MQTT Disponibles

Revise la paleta de Node-RED para nodos MQTT:

  • mqtt in - Suscribirse a topics MQTT
  • mqtt out - Publicar en topics MQTT

Punto de control: Debe ver nodos MQTT en la sección Network del panel izquierdo.

Paso 3: Configurar Conexión al Broker MQTT

3.1 Agregar Configuración del Broker MQTT

  1. Arrastre el nodo "mqtt in" al lienzo (para configuración inicial)
  2. Doble clic en el nodo para abrir configuración
  3. Haga clic en el ícono de lápiz junto al campo Server
  4. Haga clic en "Add new mqtt-broker"

3.2 Configurar Parámetros del Broker

Configuración básica del broker:

ParámetroValorDescripción
NameCamera MQTT BrokerIdentificador descriptivo
Server192.168.0.200Dirección IP del broker MQTT
Port1883Puerto estándar MQTT
ProtocolMQTT V3.1.1Versión recomendada
Client ID(auto-generate)Dejar en blanco para automático

3.3 Configuración de Autenticación (Si es Necesaria)

Si el broker requiere autenticación:

ParámetroDescripción
UsernameUsuario del broker MQTT
PasswordContraseña del broker MQTT
Use TLSActivar para conexiones seguras (puerto 8883)

3.4 Configuraciones Avanzadas

Opciones de conexión:

ParámetroValor RecomendadoDescripción
Keep Alive60 segundosIntervalo de latido
Clean SessionTrueIniciar sesión limpia en cada conexión
Auto ConnectTrueReconectar automáticamente

3.5 Guardar Configuración del Broker

  1. Haga clic en "Add" para guardar configuración del broker
  2. Haga clic en "Done" para cerrar configuración del nodo
  3. La configuración del broker estará disponible para todos los nodos MQTT

Paso 4: Configurar MQTT Input (Suscripción)

4.1 Configurar Nodo MQTT In

  1. Seleccione el nodo "mqtt in" que agregó
  2. Doble clic para configurar
  3. Configure los parámetros de suscripción:

4.2 Configuración de MQTT In

Parámetros de suscripción:

ParámetroValor de EjemploDescripción
ServerCamera MQTT BrokerSeleccione broker configurado
Topiccamera/commandsTopic para suscribirse
QoS0Calidad de entrega del mensaje
Outputauto-detectFormato del mensaje
NameCommand ListenerIdentificador del nodo

4.3 Convenciones de Nombres de Topics

Estructura recomendada de topics:

PropósitoEjemplo de TopicUso
Comandoscamera/commandsRecibir comandos de control
Solicitudes de estadocamera/status/requestSolicitudes de información de estado
Configuracióncamera/configCambios de configuración

4.4 Configurar Procesamiento de Mensajes

  1. Agregue un nodo "debug" para monitorear mensajes entrantes
  2. Conecte: MQTT In → Debug
  3. Configure el nodo debug para mostrar mensaje completo

Paso 5: Configurar MQTT Output (Publicación)

5.1 Agregar Nodo MQTT Out

  1. Arrastre el nodo "mqtt out" al lienzo
  2. Doble clic para configurar
  3. Seleccione el mismo broker configurado

5.2 Configuración de MQTT Out

Parámetros de publicación:

ParámetroValor de EjemploDescripción
ServerCamera MQTT BrokerMismo broker que input
Topiccamera/responsesTopic para respuestas de la cámara
QoS0Calidad de entrega del mensaje
RetainFalseNo almacenar último mensaje
NameResponse PublisherIdentificador del nodo

5.3 Estructura de Topics para Respuestas

Topics recomendados para respuestas:

Tipo de RespuestaEjemplo de TopicUso
Actualizaciones de estadocamera/statusInformación del estado de la cámara
Resultadoscamera/resultsResultados de inspección
Confirmacionescamera/ackConfirmaciones de comandos

Paso 6: Crear Flujo Básico de Comunicación

6.1 Construir Flujo de Mensajes Salientes

Crear flujo para publicar mensajes desde la cámara:

  1. Agregar nodo "inject" para disparar mensajes
  2. Agregar nodo "function" para formatear mensajes
  3. Agregar nodo "mqtt out" para publicar
  4. Conectar: Inject → Function → MQTT Out

6.2 Construir Flujo de Mensajes Entrantes

Crear flujo separado para recibir mensajes:

  1. Agregar nodo "mqtt in" para suscribirse
  2. Agregar nodo "debug" para monitorear
  3. Conectar: MQTT In → Debug

6.3 Configurar Nodo Inject

  1. Doble clic en nodo inject
  2. Configurar parámetros:
    • Name: "Send Test Message"
    • Payload: Timestamp
    • Topic: (dejar vacío)
  3. Haga clic en "Done"

6.4 Configurar Nodo Function

Formateo simple de mensaje:

// Formatear mensaje saliente
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;

  1. Doble clic en nodo function
  2. Copie el código anterior en la pestaña "On Message"
  3. Name: "Format Message"
  4. Haga clic en "Done"

6.5 Configurar Nodo MQTT Out

  1. Doble clic en nodo mqtt out
  2. Seleccione broker: Camera MQTT Broker (configurado previamente)
  3. Topic: (dejar vacío - lo define nodo function)
  4. Name: "Publish Status"
  5. Haga clic en "Done"

6.6 Configurar Nodo MQTT In

  1. Doble clic en nodo mqtt in
  2. Seleccione broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Name: "Command Listener"
  5. Haga clic en "Done"

6.7 Configurar Nodo Debug

  1. Doble clic en nodo debug
  2. Output: Objeto msg completo
  3. Name: "Incoming Messages"
  4. Haga clic en "Done"

6.8 Estructura Final del Flujo

Su flujo completo debe ser:

Saliente: Inject → Function → MQTT Out
Entrante: MQTT In → Debug

Paso 7: Desplegar y Probar Configuración

7.1 Desplegar Flujo

  1. Haga clic en el botón "Deploy" (esquina superior derecha)
  2. Verifique mensaje de despliegue exitoso
  3. Revise indicadores de estado de nodos:
    • Punto verde: Conectado al broker
    • Punto rojo: Conexión fallida
    • Punto amarillo: Conectando

7.2 Probar Comunicación Interna

Pruebe la publicación MQTT de la cámara:

  1. Haga clic en botón inject para enviar mensaje de prueba
  2. Verifique actividad en nodo MQTT Out
  3. Revise panel debug si hay mensajes externos

7.3 Prueba Externa (Opcional)

Pruebe con cliente MQTT externo para enviar comandos a la cámara:

Usando herramientas de línea de comandos:

# Enviar comando de prueba a la cámara
mosquitto_pub -h 192.168.0.100 -t "camera/commands" -m "test_command"

Resultado esperado: Nodo debug debe mostrar mensaje entrante en panel debug de Node-RED.

7.4 Verificar Comunicación

Revise estos aspectos:

PruebaResultado EsperadoEstado
Conexión al brokerEstado verde en nodos MQTT
Publicación de mensajesInject activa MQTT Out correctamente
Recepción de mensajesDebug muestra mensajes externos
ReconexiónReconexión automática tras interrupción

Paso 8: Solución de Problemas MQTT

8.1 Problemas de Conexión

ProblemaSíntomasSolución
No se conecta al brokerIndicadores rojosVerificar IP y puerto del broker
Fallo de autenticaciónConexión rechazadaVerificar usuario/contraseña
Timeouts de redEstado amarillo conectandoRevisar conectividad de red
Firewall bloqueandoSin intento de conexiónAbrir puertos MQTT

8.2 Problemas con Mensajes

ProblemaSíntomasSolución
No se reciben mensajesDebug sin datosVerificar suscripciones a topics
No se publican mensajesClientes externos sin datosVerificar topics de publicación
Errores de formatoFallas en parseoUsar mensajes de texto simples
Mensajes perdidosEntrega intermitenteRevisar conexión al broker

8.3 Problemas de Rendimiento

ProblemaSíntomasSolución
Alta latenciaEntrega de mensajes retrasadaRevisar rendimiento del broker
Caídas de conexiónReconexiones frecuentesAjustar configuración keep-alive
Saturación de mensajesSobrecarga del brokerImplementar limitación de mensajes

8.4 Técnicas de Depuración

Solución sistemática de problemas:

  1. Verificar estado de conexión al broker en Node-RED
  2. Monitorear panel debug de Node-RED para flujo de mensajes
  3. Usar mensajes de texto simples antes de datos complejos
  4. Verificar conectividad de red con ping
  5. Probar con topics básicos antes de flujos avanzados

¡Éxito! Su Comunicación MQTT Está Lista

Su sistema de comunicación MQTT ahora puede:

  • Conectarse a brokers MQTT con autenticación adecuada
  • Suscribirse a topics para recibir comandos y datos
  • Publicar mensajes para actualizaciones de estado y respuestas
  • Manejar formatos JSON para comunicación estructurada
  • Reconectarse automáticamente tras interrupciones de red
  • Soportar múltiples niveles de QoS para diferentes prioridades

Mantenimiento Continuo

Revisiones Regulares del Sistema

  • Monitorear estado de conexión al broker en Node-RED
  • Verificar entrega de mensajes con mensajes de prueba
  • Revisar logs del broker para patrones de error
  • Actualizar credenciales de autenticación según sea necesario

Monitoreo de Rendimiento

  • Rastrear latencia y tiempos de entrega de mensajes
  • Monitorear uso de recursos del broker para escalabilidad
  • Analizar patrones de uso de topics para optimización
  • Revisar configuraciones QoS según requerimientos reales

Próximos Pasos

Después de configurar la comunicación básica MQTT:

  1. Implementar flujos de mensajería específicos para su aplicación
  2. Configurar jerarquías de topics para comunicación organizada
  3. Agregar medidas de seguridad como cifrado TLS
  4. Integrar con sistemas externos usando protocolos MQTT establecidos
  5. Crear dashboards de monitoreo para salud del sistema

🔗 Véase También